package lagou.cn.homework

/**
  * 作业要求：每瓶啤酒2元，3个空酒瓶或者5个瓶盖可换1瓶啤酒。100元最多可喝多少瓶啤酒？（不允许借啤酒）
  * 思路：利用递归算法，一次性买完，然后递归算出瓶盖和空瓶能换的啤酒数
  * 每次求出购买啤酒总数，以及剩余瓶子和瓶盖的数量，递归查询
  */
object TaskOneDemo {
  def main(args: Array[String]): Unit = {
    var first: Int = 100 / 2
    println(s"总共获得啤酒数=${first + evaluate(0, first, first)}")
  }

  def evaluate(total: Int, x: Int, y: Int): Int = {
    // 如果瓶子不够3个并且瓶盖不够5个，则终止
    if (x < 3 && y < 5) return total
    // 空瓶换取啤酒数量
    var a = x / 3
    // 当前剩余瓶子数量
    var b = x % 3
    // 瓶盖换取啤酒数量
    var c = y / 5;
    // 当前剩余瓶盖数量
    var d = y % 5
    println(f"总共获得啤酒数量=${total + a + c} 本次剩余瓶子数=${a + b + c}%02d 本次剩余瓶盖数=${a + c + d}%02d")
    evaluate(total + a + c, a + b + c, a + c + d)
  }


}
